package com.uzhie.jt808;

import java.nio.charset.Charset;

/**
 * Created by Coder on 2018/7/6.
 * 808 协议常量
 */
public class JT808Constant {

    // 分隔符
    public final static byte SPLIT_SYMBOL = 0X7E;
    // GBK 编码
    public static final Charset CHARSET = Charset.forName("GBK");

    /**
     * 消息ID
     * <br/>
     * 命名规则
     * <p>
     * 终端请求平台 DEV_REQ_
     * <br/>
     * 终端应答平台 DEV_RES_
     * <br/>
     * 平台下发终端 PLA_REQ_
     * <br/>
     * 平台应答终端 PLA_RES_
     * </P>
     */
    public interface MSG_ID {
        // 808
        // 终端通用应答ID
        int DEV_RES_COMMON = 0x0001;
        // 平台通用应答
        int PLA_RES_COMMON = 0x8001;
        // 终端心跳
        int DEV_REQ_HEART_BEAT = 0x0002;
        // 补传分包请求
        int PLA_REQ_SUB_PACKAGE = 0X8003;
        // 设备注册
        int DEV_REQ_REGISTER = 0x0100;
        // 鉴权
        int DEV_REQ_AUTHEN = 0x0102;
        // 设置终端参数
        int PLA_REQ_SET_PARAM = 0X8103;
        // 查询终端参数
        int PLA_REQ_QUERY_PARAM = 0X8104;
        // 查询终端参数应答
        int DEV_RES_QUERY_PARAM = 0X0104;
        // 终端控制
        int PLA_REQ_DEV_CONTROL = 0X8105;
        // 查询指定终端参数
        int PLA_REQ_QUERY_DEVS_PARAM = 0X8106;
        // 查询终端属性
        int PLA_REQ_QUERY_PROP = 0X8107;
        // 查询终端属性应答
        int DEV_RES_QUERY_PROP = 0X0107;
        // 下发终端升级包
        int PLA_REQ_UPGRADE = 0X8108;
        // 终端升级结果通知
        int DEV_REQ_UPGRADE = 0X0108;
        // 位置信息汇报
        int DEV_REQ_POSITION = 0X0200;
        // 位置信息查询
        int PLA_REQ_POSITION = 0X8201;
        // 位置信息查询应答
        int DEV_RES_POSITION = 0X0201;
        // 临时位置跟踪控制
        int PLA_REQ_TEMP_POSITION = 0X8202;
        // 人工确认报警信息
        int PLA_RES_ALARM = 0X8203;
        // 文本信息下发
        int PLA_REQ_TEXT_MSG = 0X8300;
        // 事件设置
        int PLA_REQ_EVENT_SET = 0X8301;
        // 事件报告
        int DEV_RES_EVENT_SET = 0X0301;
        // 提问下发
        int PLA_REQ_ASK = 0X8302;
        // 提问应答
        int DEV_RES_ASK = 0X0302;
        // 信息点播菜单设置
        int PLA_REQ_SUBSCRIBE = 0X8303;
        // 信息点播取消
        int DEV_RES_SUBSCRIBE = 0X0303;
        // 信息服务
        int PLA_REQ_MSG_SERVICE = 0X8304;
        // 电话回拨
        int PLA_REQ_RE_TEL = 0X8400;
        // 设置电话本
        int PLA_REQ_TEL_BOOK = 0X8401;
        // 车辆控制
        int PLA_REQ_VEHICLE_CONTROL = 0X8500;
        // 车辆控制应答
        int DEV_RES_VEHICLE_CONTROL = 0X0500;
        // 设置圆形区域
        int PLA_REQ_SET_CIRCLE = 0X8600;
        // 删除圆形区域
        int PLA_REQ_REMOVE_CIRCLE = 0X8601;
        // 设置矩形区域
        int PLA_REQ_SET_RECTANGLE =0X8602;
        // 删除矩形区域
        int PLA_REQ_REMOVE_RECTANGLE = 0X8603;
        // 设置多边形区域
        int PLA_REQ_SET_POLYGON = 0X8604;
        // 删除多边形区域
        int PLA_REQ_REMOVE_POLYGON = 0X8605;
        // 设置路线
        int PLA_REQ_SET_LINE = 0X8606;
        // 删除路线
        int PLA_REQ_REMOVE_LINE = 0X8607;
        // 行驶记录仪数据采集
        int PLA_REQ_DRIVE_RECORDER = 0X8700;
        // 行驶记录仪数据上传
        int DEV_RES_DRIVE_RECORDER = 0X0700;
        // 行驶记录仪参数下传
        int PLA_REQ_SET_RECORDER_PARAM = 0X8701;
        // 电子运单上报
        int DEV_REQ_TRANSPORT_ORDER = 0X0701;

        // 终端注册应答
        int PLA_RES_REGISTER = 0X8100;
        // 终端注销
        int DEV_REQ_UNREGISTER = 0x0003;
        // 驾驶员身份信息采集上报
        int DEV_RES_DRIVER_INFO = 0X0702;
        // 上传驾驶员身份信息请求
        int PLA_REQ_DRIVER_INFO = 0X8702;
        // 定位数据批量上传
        int DEV_REQ_UPLOAD_BATCH_POSITION = 0X0704;
        // can总线数据上传
        int DEV_REQ_UPLOAD_CAN = 0X0705;
        // 多媒体事件信息上传
        int DEV_REQ_MEDIA_EVENT = 0X0800;
        // 多媒体数据上传
        int DEV_REQ_MEDIA_DATA = 0X0801;
        // 多媒体数据上传应答
        int PLA_RES_MEDIA_DATA = 0X8800;
        // 摄像头立即拍摄
        int PLA_REQ_CAMERA_TAKE = 0x8801;
        // 存储多媒体数据检索
        int PLA_REQ_QUERY_LOCAL_MEDIA = 0X8802;
        // 存储多媒体数据检索应答
        int DEV_RES_QUERY_LOCAL_MEDIA = 0X0802;
        // 存储多媒体数据上传
        int PLA_REQ_UPLOAD_LOCAL_MEDIA = 0X8803;
        // 录音开始命令
        int PLA_REQ_VOICE_RECORD = 0X8804;
        // 单条存储多媒体数据检索上传命令
        int PLA_REQ_UPLOAD_LOCAL_MEDIA_SINGLE = 0X8805;
        // 数据下行透传
        int PLA_REQ_DOWN = 0X8900;
        // 数据上行透传
        int DEV_REQ_UP = 0X0900;
        // 数据压缩上报
        int DEV_REQ_COMPRESS_DATA = 0X0901;
        // 平台rsa公钥
        int PLA_RSA = 0X8A00;
        // 终端rsa公钥
        int DEV_RSA = 0X0A00;


        // 1078-2016
        // 查询终端音视频属性
        int PLA_REQ_MEDIA_PROP = 0X9003;
        // 终端上传音视频属性
        int DEV_REQ_MEDIA_PROP = 0X1003;
        // 下达监控指令 实时音视频传输请求
        int PLA_REQ_MONITOR = 0x09101;
        // 终端上传乘客流量
        int DEV_REQ_PASSENGER = 0X1005;
        // 监控控制 音视频实时传输控制
        int PLA_REQ_MONITOR_CONTROL = 0x09102;
        // 实时音视频传输状态通知
        int PLA_REQ_MONITOR_STATE = 0X9105;
        //查询远程视频目录 查询资源列表
        int PLA_REQ_PLAYBACK_CATALOG = 0x09205;
        // 终端上传音视频资源列表
        int DEV_REQ_PLAYBACK_CATALOG = 0X1205;
        // 下达远程复播指令 平台下发远程录像回放控制
        int PLA_REQ_PLAYBACK= 0x09201;
        //远程复播控制指令 平台下发远程录像回放控制
        int PLA_REQ_PLAYBACK_CONTROL= 0x09202;
        //远程上传文件指令 文件上传
        int PLA_REQ_UP_FILE= 0x09206;
        // 文件上传完成通知
        int DEV_REQ_FILE_UPLOAD_COMPLETE = 0X1206;
        // 文件上传控制
        int PLA_REQ_FILE_UPLOAD_CONTROL = 0X9207;
        // 云台旋转
        int PLA_REQ_YT_ROTATE = 0X9301;
        // 云台调整焦距控制
        int PLA_REQ_YT_FOCUS = 0X9302;
        // 云台调整光圈控制
        int PLA_REQ_YT_APERTURE = 0X9303;
        // 云台雨刷控制
        int PLA_REQ_YT_WIPER = 0X9304;
        // 红外补光控制
        int PLA_REQ_INFRA_RED = 0X9305;
        // 云台变倍控制
        int PLA_REQ_YT_ZOOM = 0X9306;
    }
}